In a wireless communication system, a central base station communicates with a plurality of remote terminals, such as cellular mobile phones. Frequency-Division Multiple Access (FDMA) and Time-Division Multiple Access (TDMA) are the traditional multiple access schemes to provide simultaneous services to a number of terminals. The basic idea behind FDMA and TDMA technics is to slice the available resource into multiple frequency or time slots, respectively, so that multiple terminals can be accommodated without causing interference.
Contrasting these schemes with separate signals in frequency or time domains, Code-Division Multiple Access (CDMA) allows multiple users to share a common frequency and time channel by using coded modulation.
More precisely, a scrambling code, which is a long pseudo noise code sequence, is associated with each base station and permits the base stations to be distinguished from each other, as is well known by one skilled in the art. Further, an orthogonal code referred to as an OVSF code, is allocated to each remote terminal, such as a cellular mobile phone, as also well known by one skilled in the art. All these OVSF codes are orthogonal with each other, which permits a remote terminal to be distinguished from one another.
Before emitting a signal on the transmission channel towards a remote terminal, the signal has been scrambled and spread by the base station using the scrambling code of the base station and the OVSF code of the remote terminal.
Because of possible reflections of the initial transmitted signal on obstacles between the base station and the remote terminal, the transmission channel is actually a multipath transmission channel. As a result, the signal received by a remote terminal includes different time shifted versions of the initial transmitted signal which is based upon the multipath transmission characteristics of the mobile radio channel. Each path introduces a different time delay.
A remote terminal, which operates in a CDMA communication system, comprises a so-called “rake receiver”. A rake receiver is adapted for time aligning, descrambling, despreading, and combining the delayed versions of the initial signals to deliver the data stream contained in the initial signal. The terminology “N-finger” indicates that the maximum number of paths that can be combined in such a receiver is N.
After having been processed by a front end radio frequency stage, and converted in an analog-to-digital converter, the received signal is formed by a succession of chips oversampled with a predetermined oversampling factor, thus forming an input sequence of samples.
One known approach for implementing the time aligning and descrambling operations includes storing the input sequence of samples in a delay chain having a length determined by the maximum delay spread of the multipath channel. The maximum delay spread is determined for the worst case. Then, for each path of the channel, one of the outputs of the delay chain is selected, depending on the delay value of the path. The selected output signal is then multiplied by the scrambling code of the base station.
However, such an approach is hardware consuming since one multiplier is implemented for each path. Further, a large amount of input memory is needed since it is necessary to take into account the maximum delay spread in the worst case together with the resolution of the analog-to-digital converters.
Another approach uses, for each path, a delayed version of the scrambling code of the base station. According to this approach, it is necessary to either implement a different scrambling code generator for each path, or to use a memory storing all the delayed scrambling codes for all the paths. However, it is difficult to implement independent scrambling code generators for each of the fingers. If a memory is used for storing all the delayed scrambling codes for all the paths, the addressing scheme of this memory is rather complicated and furthermore, must be modified, if during the transmission, one delay value of one path changes. The implementation of this approach is even more complicated when several scrambling codes associated with several base stations must be taken into account in the rake receiver.